/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

/*
 * dlgRegistroIncidencia.java
 *
 * Created on 16/10/2011, 05:10:07 PM
 */

package visual.Almacenamiento;
import bentity.beIncidencia;
import blogic.blIncidencia;
import java.sql.SQLException;
import java.util.logging.Level;
import java.util.logging.Logger;
import visual.Seguridad.visualHelper;
import java.sql.Date;
import bentity.beProducto;
import blogic.blPallet;
import java.util.ArrayList;
import blogic.blProducto;
import bentity.beUsuario;
import blogic.blLog;
import java.awt.Dimension;
import javax.swing.JOptionPane;

/**
 *
 * @author giulio
 */
public class dlgRegistroIncidencia extends javax.swing.JDialog {
    public static final String INCIDENCIA_ACTIVA = "Activa";
    public static final String INCIDENCIA_INACTIVA ="Inactiva";
    private beUsuario usuario = null;

    /** Creates new form dlgRegistroIncidencia */
    public dlgRegistroIncidencia(java.awt.Frame parent, boolean modal,beUsuario usuario) throws SQLException {
        super(parent, modal);
        initComponents();
        this.txtCosto.setTransferHandler(null);
        this.usuario = usuario;
        this.setBounds(0, 0, 700, 500);
        this.setResizable(false);
        visualHelper.centrarDialogoEnPantalla(this);
        ArrayList<String> c = new ArrayList<String>();
        blIncidencia b = new blIncidencia();
        c = b.getCriticidad();
        llenarCombo(c);


        this.setModal(true);
    }
    public void llenarCombo(ArrayList<String> criticidad){
     this.cmbCriticidad.addItem(" ");
     for(int i=0;i < criticidad.size();i++){
         this.cmbCriticidad.addItem(criticidad.get(i));
     }

 }


    /** This method is called from within the constructor to
     * initialize the form.
     * WARNING: Do NOT modify this code. The content of this method is
     * always regenerated by the Form Editor.
     */
    @SuppressWarnings("unchecked")
    // <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents
    private void initComponents() {

        lblTitulo = new javax.swing.JLabel();
        btnCancelar = new javax.swing.JButton();
        btnRegistrar = new javax.swing.JButton();
        pnlEliminarPallet = new javax.swing.JPanel();
        lblTipoMoneda = new javax.swing.JLabel();
        lblCriticidad = new javax.swing.JLabel();
        lblDescripcion = new javax.swing.JLabel();
        jScrollPane4 = new javax.swing.JScrollPane();
        txtDescripcion = new javax.swing.JTextArea();
        lblCosto = new javax.swing.JLabel();
        txtCosto = new javax.swing.JTextField();
        rbnRack = new javax.swing.JRadioButton();
        rbnProducto = new javax.swing.JRadioButton();
        lblCosto1 = new javax.swing.JLabel();
        cmbCriticidad = new javax.swing.JComboBox();
        lblBusqFila = new javax.swing.JLabel();
        lblBusqFila1 = new javax.swing.JLabel();
        lblBusqFila2 = new javax.swing.JLabel();
        lblBusqFila3 = new javax.swing.JLabel();

        setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE);
        setAlwaysOnTop(true);
        getContentPane().setLayout(null);

        lblTitulo.setFont(new java.awt.Font("DejaVu Sans", 0, 36));
        lblTitulo.setForeground(new java.awt.Color(0, 0, 0));
        lblTitulo.setText("Registrar Incidencia");
        getContentPane().add(lblTitulo);
        lblTitulo.setBounds(160, 20, 360, 43);

        btnCancelar.setBackground(new java.awt.Color(240, 235, 226));
        btnCancelar.setFont(new java.awt.Font("Dialog", 0, 12));
        btnCancelar.setForeground(new java.awt.Color(0, 0, 0));
        btnCancelar.setText("Cancelar");
        btnCancelar.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                btnCancelarActionPerformed(evt);
            }
        });
        getContentPane().add(btnCancelar);
        btnCancelar.setBounds(440, 450, 100, 27);

        btnRegistrar.setBackground(new java.awt.Color(240, 235, 226));
        btnRegistrar.setFont(new java.awt.Font("Dialog", 0, 12));
        btnRegistrar.setForeground(new java.awt.Color(0, 0, 0));
        btnRegistrar.setText("Registrar");
        btnRegistrar.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                btnRegistrarActionPerformed(evt);
            }
        });
        getContentPane().add(btnRegistrar);
        btnRegistrar.setBounds(150, 450, 100, 27);

        pnlEliminarPallet.setBorder(javax.swing.BorderFactory.createTitledBorder(javax.swing.BorderFactory.createLineBorder(new java.awt.Color(0, 0, 0)), "Datos de Incidencia", javax.swing.border.TitledBorder.DEFAULT_JUSTIFICATION, javax.swing.border.TitledBorder.DEFAULT_POSITION, new java.awt.Font("Dialog", 0, 14), new java.awt.Color(0, 0, 0))); // NOI18N
        pnlEliminarPallet.setLayout(null);

        lblTipoMoneda.setFont(new java.awt.Font("Dialog", 0, 12));
        lblTipoMoneda.setForeground(new java.awt.Color(0, 0, 0));
        lblTipoMoneda.setText("Soles");
        pnlEliminarPallet.add(lblTipoMoneda);
        lblTipoMoneda.setBounds(490, 250, 36, 15);

        lblCriticidad.setFont(new java.awt.Font("Dialog", 0, 12));
        lblCriticidad.setForeground(java.awt.Color.black);
        lblCriticidad.setText("Criticidad ");
        pnlEliminarPallet.add(lblCriticidad);
        lblCriticidad.setBounds(70, 190, 90, 15);

        lblDescripcion.setFont(new java.awt.Font("Dialog", 0, 12)); // NOI18N
        lblDescripcion.setForeground(java.awt.Color.black);
        lblDescripcion.setText("Descripcion ");
        pnlEliminarPallet.add(lblDescripcion);
        lblDescripcion.setBounds(70, 40, 130, 15);

        txtDescripcion.setColumns(20);
        txtDescripcion.setRows(5);
        txtDescripcion.addKeyListener(new java.awt.event.KeyAdapter() {
            public void keyTyped(java.awt.event.KeyEvent evt) {
                txtDescripcionKeyTyped(evt);
            }
            public void keyPressed(java.awt.event.KeyEvent evt) {
                txtDescripcionKeyPressed(evt);
            }
        });
        jScrollPane4.setViewportView(txtDescripcion);

        pnlEliminarPallet.add(jScrollPane4);
        jScrollPane4.setBounds(180, 40, 280, 100);

        lblCosto.setFont(new java.awt.Font("Dialog", 0, 12));
        lblCosto.setForeground(java.awt.Color.black);
        lblCosto.setText("Tipo ");
        pnlEliminarPallet.add(lblCosto);
        lblCosto.setBounds(70, 300, 40, 20);

        txtCosto.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                txtCostoActionPerformed(evt);
            }
        });
        txtCosto.addKeyListener(new java.awt.event.KeyAdapter() {
            public void keyTyped(java.awt.event.KeyEvent evt) {
                txtCostoKeyTyped(evt);
            }
            public void keyPressed(java.awt.event.KeyEvent evt) {
                txtCostoKeyPressed(evt);
            }
        });
        pnlEliminarPallet.add(txtCosto);
        txtCosto.setBounds(180, 240, 280, 28);

        rbnRack.setFont(new java.awt.Font("Dialog", 0, 12));
        rbnRack.setText("Por rack");
        rbnRack.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                rbnRackActionPerformed(evt);
            }
        });
        pnlEliminarPallet.add(rbnRack);
        rbnRack.setBounds(190, 300, 125, 24);

        rbnProducto.setFont(new java.awt.Font("Dialog", 0, 12));
        rbnProducto.setText("Por Pallet");
        rbnProducto.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                rbnProductoActionPerformed(evt);
            }
        });
        pnlEliminarPallet.add(rbnProducto);
        rbnProducto.setBounds(370, 300, 86, 24);

        lblCosto1.setFont(new java.awt.Font("Dialog", 0, 12));
        lblCosto1.setForeground(java.awt.Color.black);
        lblCosto1.setText("Costo ");
        pnlEliminarPallet.add(lblCosto1);
        lblCosto1.setBounds(70, 250, 70, 15);
        pnlEliminarPallet.add(cmbCriticidad);
        cmbCriticidad.setBounds(180, 180, 280, 28);

        lblBusqFila.setFont(new java.awt.Font("Dialog", 0, 12)); // NOI18N
        lblBusqFila.setForeground(java.awt.Color.red);
        lblBusqFila.setText("(*)");
        pnlEliminarPallet.add(lblBusqFila);
        lblBusqFila.setBounds(130, 190, 30, 15);

        lblBusqFila1.setFont(new java.awt.Font("Dialog", 0, 12)); // NOI18N
        lblBusqFila1.setForeground(java.awt.Color.red);
        lblBusqFila1.setText("(*)");
        pnlEliminarPallet.add(lblBusqFila1);
        lblBusqFila1.setBounds(150, 40, 30, 15);

        lblBusqFila2.setFont(new java.awt.Font("Dialog", 0, 12)); // NOI18N
        lblBusqFila2.setForeground(java.awt.Color.red);
        lblBusqFila2.setText("(*)");
        pnlEliminarPallet.add(lblBusqFila2);
        lblBusqFila2.setBounds(110, 250, 30, 15);

        lblBusqFila3.setFont(new java.awt.Font("Dialog", 0, 12)); // NOI18N
        lblBusqFila3.setForeground(java.awt.Color.red);
        lblBusqFila3.setText("(*)");
        pnlEliminarPallet.add(lblBusqFila3);
        lblBusqFila3.setBounds(100, 300, 30, 15);

        getContentPane().add(pnlEliminarPallet);
        pnlEliminarPallet.setBounds(70, 70, 570, 360);

        pack();
    }// </editor-fold>//GEN-END:initComponents

    private void btnCancelarActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnCancelarActionPerformed
         int rslt = JOptionPane.showConfirmDialog(this, "¿Está seguro que desea cancelar el registro del incidente?", "Confirmación", JOptionPane.YES_NO_OPTION);
        if (rslt == JOptionPane.YES_OPTION){
            this.setVisible(false);
            this.dispose();
        }
}//GEN-LAST:event_btnCancelarActionPerformed

    private void btnRegistrarActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnRegistrarActionPerformed

        if (this.cmbCriticidad.getSelectedObjects().toString().compareTo("") == 0 ||(this.rbnRack.isSelected() && this.rbnProducto.isSelected()) ||
                 this.txtDescripcion.getText().isEmpty() || this.txtCosto.getText().isEmpty()){
                visualHelper.mostrarMensajeAdvertencia("Debe llenar los campos obligatorios (*).");
        }
        else {
         String strDescripcion = "";
         Double douCosto = 0.0;
         Integer entCriticidad = 0;
         Integer idRack = 0;
         String strCriticidad = null;
         strCriticidad = this.cmbCriticidad.getSelectedItem().toString();
         if (strCriticidad.compareTo("Bajo")== 0){
            entCriticidad = 34;
         }
         else {
            if (strCriticidad.compareTo("Medio")== 0)
                entCriticidad = 35;
            else {
                if (strCriticidad.compareTo("Alto")== 0)
                    entCriticidad = 36;
            }
        }
        int tipo_Incidencia = 0;
        blIncidencia blIncidencia = new blIncidencia();
        ArrayList<Integer> estados = new ArrayList<Integer>();

        try{
            strDescripcion = this.txtDescripcion.getText();
            douCosto = Double.parseDouble(this.txtCosto.getText());
            
            if (this.rbnRack.isSelected())
                 tipo_Incidencia = 23; //mejorar
            else {
                if( this.rbnProducto.isSelected())
                  tipo_Incidencia = 24; //mejorar
            }
            estados =blIncidencia.getEstado();

            beIncidencia incidencia = new beIncidencia( 1,strDescripcion,douCosto,entCriticidad,tipo_Incidencia,estados.get(0));
            int id = blIncidencia.registrarIncidencia(incidencia);

            visualHelper.mostrarMensajeSatisfaccion("Se registró satisfactoriamente la incidencia");
            (new blLog()).registrarLog(this.usuario.getIdUsuario(), this.usuario.getCargo(), "Se registró una incidencia.");
            this.dispose();
        }
        
        catch (Exception e){
            visualHelper.mostrarMensajeError("No se pudo registrar la incidencia.");
        }
       }
        
    }//GEN-LAST:event_btnRegistrarActionPerformed

    private void rbnRackActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_rbnRackActionPerformed
        // TODO add your handling code here:
        this.rbnProducto.setSelected(false);
    }//GEN-LAST:event_rbnRackActionPerformed

    private void rbnProductoActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_rbnProductoActionPerformed
        // TODO add your handling code here:
        this.rbnRack.setSelected(false);
    }//GEN-LAST:event_rbnProductoActionPerformed

    private void txtDescripcionKeyPressed(java.awt.event.KeyEvent evt) {//GEN-FIRST:event_txtDescripcionKeyPressed
        // TODO add your handling code here:
       visualHelper.controlarTamanho_V2(evt,100,this.txtDescripcion);
    }//GEN-LAST:event_txtDescripcionKeyPressed

    private void txtCostoKeyPressed(java.awt.event.KeyEvent evt) {//GEN-FIRST:event_txtCostoKeyPressed
        // TODO add your handling code here:
       visualHelper.controlarTamanho(evt,8,this.txtCosto);
    }//GEN-LAST:event_txtCostoKeyPressed

    private void txtCostoKeyTyped(java.awt.event.KeyEvent evt) {//GEN-FIRST:event_txtCostoKeyTyped
        // TODO add your handling code here:
          String strMtoMin = this.txtCosto.getText();
        int i = strMtoMin.indexOf(".");
        if (i==-1){
            if (strMtoMin.length() > 7)
                visualHelper.soloPuntos(evt);
            else
                visualHelper.soloDigitosYPunto(evt);
        }
        else
            visualHelper.soloDigitosEnTextField(evt);
    }//GEN-LAST:event_txtCostoKeyTyped

    private void txtDescripcionKeyTyped(java.awt.event.KeyEvent evt) {//GEN-FIRST:event_txtDescripcionKeyTyped
        // TODO add your handling code here:
        visualHelper.soloDigitosLetrasPuntoComaComilla(evt);
    }//GEN-LAST:event_txtDescripcionKeyTyped

    private void txtCostoActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_txtCostoActionPerformed
        // TODO add your handling code here:
        this.txtCosto.setEnabled(true);
    }//GEN-LAST:event_txtCostoActionPerformed



    /**
    * @param args the command line arguments
    */
    

    // Variables declaration - do not modify//GEN-BEGIN:variables
    private javax.swing.JButton btnCancelar;
    private javax.swing.JButton btnRegistrar;
    private javax.swing.JComboBox cmbCriticidad;
    private javax.swing.JScrollPane jScrollPane4;
    private javax.swing.JLabel lblBusqFila;
    private javax.swing.JLabel lblBusqFila1;
    private javax.swing.JLabel lblBusqFila2;
    private javax.swing.JLabel lblBusqFila3;
    private javax.swing.JLabel lblCosto;
    private javax.swing.JLabel lblCosto1;
    private javax.swing.JLabel lblCriticidad;
    private javax.swing.JLabel lblDescripcion;
    private javax.swing.JLabel lblTipoMoneda;
    private javax.swing.JLabel lblTitulo;
    private javax.swing.JPanel pnlEliminarPallet;
    private javax.swing.JRadioButton rbnProducto;
    private javax.swing.JRadioButton rbnRack;
    private javax.swing.JTextField txtCosto;
    private javax.swing.JTextArea txtDescripcion;
    // End of variables declaration//GEN-END:variables

}
